package de.gof.ppstool.util.export;

import java.util.ArrayList;
import java.util.List;

/**
 * Klasse mit allen Daten, die spaeter per XMLExporter ausgegeben werden sollen
 * Singleton
 */
public class Output {
	private static Output instance = new Output();
	//ArticleId, Quantity
	private SellWishItem verkaufsWunschKind = new SellWishItem(1, 0);
	private SellWishItem verkaufsWunschDamen = new SellWishItem(2, 0);
	private SellWishItem verkaufsWunschHerren = new SellWishItem(3, 0);
	//ArticleId, Quantity, Price, Penalty
	private SellWishItemDirect verkaufsWunschDirektKind = new SellWishItemDirect(
			1, 0, 0.0, 0.0);
	private SellWishItemDirect verkaufsWunschDirektDamen = new SellWishItemDirect(
			2, 0, 0.0, 0.0);
	private SellWishItemDirect verkaufsWunschDirektHerren = new SellWishItemDirect(
			3, 0, 0.0, 0.0);
	//OrderItem: ArticleId, Quantity, Modus (4=normal, 5=fast)
	private List<OrderItem> bestellliste = new ArrayList<OrderItem>();
	//ProductionItem: ArticleId, Quantity
	private List<ProductionItem> produktionsliste = new ArrayList<ProductionItem>();
	//WorkingTimeItem: station, shift, overtime
	private List<WorkingTimeItem> zeitbedarfArbeitsplaetze = new ArrayList<WorkingTimeItem>();

	/**
	 * Private constructor
	 */
	private Output() {
		//Station, Shift, Overtime
		zeitbedarfArbeitsplaetze.add(new WorkingTimeItem(1, 1, 0));
		zeitbedarfArbeitsplaetze.add(new WorkingTimeItem(2, 1, 0));
		zeitbedarfArbeitsplaetze.add(new WorkingTimeItem(3, 1, 0));
		zeitbedarfArbeitsplaetze.add(new WorkingTimeItem(4, 1, 0));
		zeitbedarfArbeitsplaetze.add(new WorkingTimeItem(6, 1, 0));
		zeitbedarfArbeitsplaetze.add(new WorkingTimeItem(7, 1, 0));
		zeitbedarfArbeitsplaetze.add(new WorkingTimeItem(8, 1, 0));
		zeitbedarfArbeitsplaetze.add(new WorkingTimeItem(9, 1, 0));
		zeitbedarfArbeitsplaetze.add(new WorkingTimeItem(10, 1, 0));
		zeitbedarfArbeitsplaetze.add(new WorkingTimeItem(11, 1, 0));
		zeitbedarfArbeitsplaetze.add(new WorkingTimeItem(12, 1, 0));
		zeitbedarfArbeitsplaetze.add(new WorkingTimeItem(13, 1, 0));
		zeitbedarfArbeitsplaetze.add(new WorkingTimeItem(14, 1, 0));
		zeitbedarfArbeitsplaetze.add(new WorkingTimeItem(15, 1, 0));
	}

	/**
	 * Public constructor
	 * @return
	 */
	public static Output getInstance() {
		return instance;
	}

	//Getter/Setter
	public void setVerkaufsWunschKind(SellWishItem verkaufsWunschKind) {
		this.verkaufsWunschKind = verkaufsWunschKind;
	}

	public SellWishItem getVerkaufsWunschKind() {
		return verkaufsWunschKind;
	}

	public void setVerkaufsWunschDamen(SellWishItem verkaufsWunschDamen) {
		this.verkaufsWunschDamen = verkaufsWunschDamen;
	}

	public SellWishItem getVerkaufsWunschDamen() {
		return verkaufsWunschDamen;
	}

	public void setVerkaufsWunschHerren(SellWishItem verkaufsWunschHerren) {
		this.verkaufsWunschHerren = verkaufsWunschHerren;
	}

	public SellWishItem getVerkaufsWunschHerren() {
		return verkaufsWunschHerren;
	}

	public void setVerkaufsWunschDirektKind(
			SellWishItemDirect verkaufsWunschDirektKind) {
		this.verkaufsWunschDirektKind = verkaufsWunschDirektKind;
	}

	public SellWishItemDirect getVerkaufsWunschDirektKind() {
		return verkaufsWunschDirektKind;
	}

	public void setVerkaufsWunschDirektDamen(
			SellWishItemDirect verkaufsWunschDirektDamen) {
		this.verkaufsWunschDirektDamen = verkaufsWunschDirektDamen;
	}

	public SellWishItemDirect getVerkaufsWunschDirektDamen() {
		return verkaufsWunschDirektDamen;
	}

	public void setVerkaufsWunschDirektHerren(
			SellWishItemDirect verkaufsWunschDirektHerren) {
		this.verkaufsWunschDirektHerren = verkaufsWunschDirektHerren;
	}

	public SellWishItemDirect getVerkaufsWunschDirektHerren() {
		return verkaufsWunschDirektHerren;
	}

	public void setBestellliste(List<OrderItem> bestellliste) {
		this.bestellliste = bestellliste;
	}

	public List<OrderItem> getBestellliste() {
		return bestellliste;
	}

	public void setProduktionsliste(List<ProductionItem> produktionsliste) {
		this.produktionsliste = produktionsliste;
	}

	public List<ProductionItem> getProduktionsliste() {
		return produktionsliste;
	}

	public List<WorkingTimeItem> getZeitbedarfArbeitsplaetze() {
		return zeitbedarfArbeitsplaetze;
	}

	public void setZeitbedarfArbeitsplaetze(
			List<WorkingTimeItem> zeitbedarfArbeitsplaetze) {
		this.zeitbedarfArbeitsplaetze = zeitbedarfArbeitsplaetze;
	}

}
